package com.lg.algorithm.leetcode;

import java.util.Enumeration;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

/**
 * 实现一个 MapSum 类，支持两个方法，insert 和 sum：
 *
 * MapSum() 初始化 MapSum 对象
 * void insert(String key, int val) 插入 key-val 键值对，字符串表示键 key ，整数表示值 val 。如果键 key 已经存在，那么原来的键值对将被替代成新的键值对。
 * int sum(string prefix) 返回所有以该前缀 prefix 开头的键 key 的值的总和。
 *
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/map-sum-pairs
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 *
 *
 */
class MapSum {
    HashMap<String, Integer> map;
    public static void main(String[] args) {
        MapSum mapSum = new MapSum();
        mapSum.insert("apple",11);
        mapSum.insert("apple", 3);
        System.out.println(mapSum.sum("ap"));
        mapSum.insert("app", 2);
        System.out.println(mapSum.sum("ap"));

        System.out.println("aab".contains("a"));

    }
    public MapSum() {
        map= new HashMap<>();
    }
    
    public void insert(String key, int val) {
        map.put(key, val);
    }
    
    public int sum(String prefix) {
        Iterator<String> iterator = map.keySet().iterator();
        int sum = 0;
        while (iterator.hasNext()) {
            String next = iterator.next();
            if (next.startsWith(prefix)) {
                sum += map.get(next);
            }
        }
        return sum;
    }

    public Map getMap() {
        return map;
    }


}
